Actualmente estoy eliminando https:// y http:// con el siguiente código:
$r=\Input::get('searchQuery'); $Query = preg_replace( "#^[^:/.]*[:/]+#i", "", $r); $Query=rtrim($Query, "/"); Necesito eliminar www. también. ¿Qué debo agregar al código para eliminar www.
Por ejemplo: cuando busco https://www.example.com/ solo debería buscar example.com
Es realmente fácil, puedes usar preg_replace con una simple expresión regular:
$query = preg_replace('/^((http:\/\/|https:\/\/)?(www\.)?)/i', '', $text);Vea este ejemplo , para que pueda entender mi expresión regular.
La siguiente expresión regular funciona en cualquier cadena con un "http(s)", "www" opcional. y barra inclinada:
$r=\Input::get('searchQuery'); $Query = preg_replace('/^(https?\:\/\/)?(www.)?|\/$/', "", $r);Cómo funciona :
^ comienzo de la cadena.
(https?\:\/\/)? opcionalmente, haga coincidir "http(s)://" (la "s" también es opcional).
(www.)? coincidencia opcional: "www.".
|\/$ coincide con "/" si es el último carácter de la cadena.
Puede usar el método de ayudantes de Laravel preg_replace_array . La función preg_replace_array reemplaza un patrón dado en la cadena secuencialmente usando una matriz:
$string = 'https://www.example.com/' $query = preg_replace_array('#^[^:/.]*[:/www.?]+#i', [''], $string); // example.com/ $query = rtrim($query, '/'); // example.com Entrada: https://www.example.com/
Salida: example.com